RAID (redundant array of inexpensive disks) devices are increasingly employed to fill an ever-increasing need for mass data storage. Within a RAID device, operation of a large number of disks conventionally requires a large number of controller cards, each having at least one processor. One of the common issues associated with multiprocessor applications is the performance impact associated with having processors spend time transferring work from a first processor to a second processor.
In systems built around the concept of symmetric multiprocessing (SMP), all processors see the same view of memory. In SMP systems, processors do not need to spend time packing up memory contents in the form of a message to another processor. However, special hardware elements are added to the SMP systems to track each processor's state and to insure that the memory stays coherent. As a result, these systems are very expensive and difficult to build. Additionally, SMP systems become increasingly complex, expensive and inefficient as processors are added. For example, difficulties associated with two or four processors are not nearly as complex as those systems with eight or more processors. Accordingly, SMP technology encounters system wide bottlenecks associated with coherency operations, and reduction of the overall benefit realized larger numbers of processors are added to the system. Therefore, multiprocessor systems that allow all processors to have the same view of memory may be complex and expense. Moreover, these drawbacks may increase with the number of processors.
In another form of multiprocessor architecture, cooperating processors do not share a common view of memory. For example, in a UNIX environment, messages are constructed and transmitted between processors in the form of “remote shells.” In order for this to be of benefit to the overall performance, the messages need to be small and quickly constructed, but need to imply a large quantity of work. The quantity of work that is transferred must be much more than the work required formulating the message. For systems built according to this technology to succeed, care must be taken to prevent overhead involved in message formulation from degrading the benefit of employing another processor.